///*
// * Project Name: jmax
// * File Name: CharsetDecoder.java
// * Copyright: Copyright(C) 1985-2015 ZKTeco Inc. All rights reserved.
// */
//package com.xdtech.jmax.test;
//
//import java.nio.charset.Charset;
//
//import org.apache.log4j.Logger;
//import org.apache.mina.core.buffer.IoBuffer;
//import org.apache.mina.core.session.IoSession;
//import org.apache.mina.filter.codec.ProtocolDecoder;
//import org.apache.mina.filter.codec.ProtocolDecoderOutput;
//
///**
// * TODO 一句话功能简述，请确保和下面的block tags之间保留一行空行
// * <p>
// * TODO 功能详细描述，若不需要请连同上面的p标签一起删除
// * 
// * @author <a href="max.zheng@zkteco.com">郑志雄</>
// * @version TODO 添加版本
// * @see 相关类或方法，不需要请删除此行
// * @since 2015-5-15 下午2:38:27
// */
//public class CharsetDecoder implements ProtocolDecoder {  
//  
//    private final static Logger log = Logger.getLogger(CharsetDecoder.class);  
//      
//    private final static Charset charset = Charset.forName("UTF-8");      
//    // 可变的IoBuffer数据缓冲区  
//    private IoBuffer buff = IoBuffer.allocate(100).setAutoExpand(true);  
//      
//   
//    public void decode(IoSession session, IoBuffer in, ProtocolDecoderOutput out) throws Exception {  
//        log.info("#########decode#########");  
//          
//        // 如果有消息  
//        while (in.hasRemaining()) {  
//            // 判断消息是否是结束符，不同平台的结束符也不一样；  
//            // windows换行符（\r\n）就认为是一个完整消息的结束符了； UNIX 是\n；MAC 是\r  
//            byte b = in.get();  
////            if (b == '\n') 
//            {  
//                buff.flip();  
//                byte[] bytes = new byte[buff.limit()];  
//                buff.get(bytes);  
//                String message = new String(bytes, charset);  
//                  
//                buff = IoBuffer.allocate(100).setAutoExpand(true);  
//                  
//                // 如果结束了，就写入转码后的数据  
//                out.write(message);  
//                //log.info("message: " + message);  
//            } 
////            else {  
////                buff.put(b);  
////            }  
//        }  
//    }  
//  
//  
//    public void dispose(IoSession session) throws Exception {  
//        log.info("#########dispose#########");  
//        log.info(session.getCurrentWriteMessage());  
//    }  
//  
//     
//    public void finishDecode(IoSession session, ProtocolDecoderOutput out) throws Exception {  
//        log.info("#########完成解码#########");  
//    }  
//}
